Dynamic Information Flow Labeling in Javascript

نویسنده

  • Alan Cleary
چکیده

Clientside scripting languages such as JavaScript are ubiquitous in modern, internet-connected computing, but pose a definite security risk to those who allow their execution. The widespread inclusion of thirdparty scripts into major websites increases the risks of malicious scripts interfering with the desired behavior of a page, and consequently decreases the level of security available to web users. While a variety of security mechanisms do exist in current browser environments (e.g. the “same origin policy”, SSL certificates, etc.) these approaches often lack the flexibility necessary to cope with real-world threats. Furthermore, these measures fail to fully account for subtle threats posed by JavaScript, such as unwanted information access, as in cross-site request forgery (CSRF) and cross-site scripting (XSS). Recent academic attention focusses on increasing the security of JavaScript, either by reducing its functionality (for example Facebook JavaScript (FBJS) or Google’s Caja) or by augmenting the execution environment. The latter can take a wide variety of forms (viz. Section 2) This paper presents a novel approach to instrumenting a JavaScript interpreter, using a hybrid of static and dynamic approaches to label values during the course of execution. Our work dynamically tracks direct information flow during execution, as well as utilizing static analysis to support dynamic context tracking for intraand inter-procedural implicit information flow tracking. Furthermore, this flow tracking handles complex features of JavaScript that have caused issues in the past, such as eval [viz. 5] and dynamic dispatch on a prototype chain.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Secure Serverless Computing Using Dynamic Information Flow Control

The rise of serverless computing provides an opportunity to rethink cloud security. We present an approach for securing serverless systems using a novel form of dynamic information flow control (IFC). We show that in serverless applications, the termination channel found in most existing IFC systems can be arbitrarily amplified via multiple concurrent requests, necessitating a stronger terminat...

متن کامل

Hybrid Typing of Secure Information Flow in a JavaScript-Like Language

As JavaScript is highly dynamic by nature, static information flow analyses are often too coarse to deal with the dynamic constructs of the language. To cope with this challenge, we present and prove the soundness of a new hybrid typing analysis for securing information flow in a JavaScript-like language. Our analysis combines static and dynamic typing in order to avoid rejecting programs due t...

متن کامل

Dynamic Information Flow Analysis for Featherweight JavaScript Technical Report #UCSC-SOE-11-19

Although JavaScript is an important part of Web 2.0, it has historically been a major source of security holes. Code from malicious advertisers and cross-site-scripting (XSS) attacks are particularly pervasive problems. In this paper, we explore dynamic information flow to prevent the loss of confidential information from malicious JavaScript code. In particular, we extend prior dynamic informa...

متن کامل

Information-flow security for JavaScript and its APIs

JavaScript drives the evolution of the web into a powerful application platform. Increasingly, web applications combine services from different providers. The script inclusion mechanism routinely turns barebone web pages into full-fledged services built up from third-party code. Script inclusion poses a challenge of ensuring that the integrated third-party code respects security and privacy. Th...

متن کامل

An Information Flow Monitor-Inlining Compiler for Securing a Core of JavaScript

Web application designers and users alike are interested in isolation properties for trusted JavaScript code in order to prevent confidential resources from being leaked to untrusted parties. Noninterference provides the mathematical foundation for reasoning precisely about the information flows that take place during the execution of a program. Due to the dynamicity of the language, research o...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011